Welcome to Framsticks'world.
Have a nice time using Framsticks' editor ver.2.0b




What is Artificial Life?

Objective of Framstick project is to study evolution process in a simulated world. It is very similar to real world and uses basic evolution mechanisms to create more efficient "artificial" organisms. These organisms are trying to adapt conditions met in the "artificial" world.
Framstick project is a kind of research that belongs to field of science called "Artificial Life" ("AL"). It is connected with "Artificial Intelligence", but also physics and biology, as we try to simulate nature and living organisms on our computers. The environment is artificial, virtual world on our machine. It doesn't have to be similar to the real world, but sometimes such a experiments might be very interesting, as you can compare simulation results with reality.
Simple artificial creatures can be used in computer control of animal's models in films, more sophisticated can learn and improve themselves. They can be taught to avoid obstacles, seek energy spots, follow targets etc. It's very similar to robot control - it is possible to perform useful actions.
Like in the real world in the simulator better-adapted and fit organisms have better chance to survive. Besides creatures morphology is determined by genes - you can freely build genotypes, so you have an ability to develop organisms of any complexity. After creating an organism you can put it into artificial environment and observe its evolution (based on genetic algorithms), improving self and adapting to environment conditions.
This simple model doesn't lead to founding consciousness, intelligence and feelings, but generally self-improvement of artificial organisms can do so. We still don't know if evolution created organisms which live among us alone. Experiments like that can show capabilities of simulated evolution and these can be compared to the real ones. Maybe in the future such researches will be able to explain the mystery of our creation? Anyway, this program is simple way to open a gateway to the "Artificial Life" world and become interested in it's problems and mysteries. We hope it will be useful, give you an opportunity to learn something new and above all have some fun.




Brief info

Fred is a part of Framsticks Project which started in 1997. Three-dimensional life simulation is a goal of project. Both physical structures (bodies) and control systems (brains) of creatures are modeled. Fred is a application which allows you to see creature which is actually beeing designed. Use Your own imagination to create hi-complex creatures, then put them into Framstics application and see how they evoluate.



Fundamental knowledge

Framstick's body consists of parts and joints, neural network are neurons and connections. Parts, Joints, Neurons, Connections have reference numbers. References start with 0 and every new object in the class gets the next reference number.
Each of parts,joins, neurons and connections is decribed by set of properties. Some of properties are mandatory and some of them are not. Not obligatory parameters when not described get default values.

Part object (p)
Not obligatory:
x,y,z (position in 3D, all dimensions default=0),
m (physical mass, default=1),
s (size - for collisions, default=1),
dn (density, default=1),
fr (friction, default=0.4),
ing (ingestion, default=0.25),
as (assimilation, default=0.25).

Joint object (j)
Obligatory:
p1,p2 (reference numbers of the two connected parts),

Not obligatory:
rx,rx,rz (rotation, for rotations in all dimensions deafult value=0),
dx,dy,dz (delta option: if you specify any value for dx, all three deltas are used as displacement applied to the second part p2),
stif (stiffness, default=1),
rotstif (rotation stiffness, default=1),
stam (stamina, default=0.25).

Example: 3 parts and 2 joints


Neuron object (n)
Obligatory:
p (reference number of the part the neuron is attached to)
OR
j (reference number of the joint the neuron is attached to ).
Not obligatory:
d (neuron class description, like "classname:properties_and_values")

Connection (c)
Obligatory:
n (reference number of the parent neuron), i (reference number of the neuron to be connected as the parent's input),
Not obligatory:
w=1.0 - connection weight


Neuron's types(from left):N-Neuron(Standard Framsticks neuron), T-Touch(Touch sensor),
S-Smell(Smell sensor), *-Const(Constant value), G-Gyroscope(Equilibrium sensor),
|-Bend muscle, @-Rotation muscle, Fuzzy-Fuzzy system, Sin-Sinus Generator


Model validity constraints
I.at most one joint can directly link two parts
II.each joint must be connected with two distinct parts
III.all parts must be directly or indirectly connected with each other
IV.delta joints must not form cycles
V.for each joint the part-to-part distance must not exceed the value defined as the maximum Joint.dx (2.0)




Distribution

Fred 2.0b is totally freeware which means you can download, install, and use it for free.



Editor

You can edit creature in two ways: using f0 editor(this forces you to know f0 Framsticks' construction language!) or dopping, dragging, moving components in graphical editor(body+neaural network). Both ways leads you to fully functional framstick creature.



Keyboard shortcuts

File menu:
Ctrl+NNew
Ctrl+OOpen
Ctrl+DOpen from internet database
Ctrl+SSave
Ctrl+F4Close
Ctrl+IFramstick's info
Ctrl+F4Exit

Edit menu:
Ctrl+Z(or Alt+BackSpace)Undo
Ctrl+Y(or F4)Redo
Ctrl+C(or Ctrl+Ins)Copy
Ctrl+X(or Shift+Del)Cut
Ctrl+V(or Shift+Ins)Paste




f0 Editor

f0 editor is prepared for advanced users. Proper use of f0 Editor requires f0 Framstick language knowledge(see
Fundamental knowledge). Each line in f0 describes one object in the model. The syntax is:
CLASSID:PROPERTY1,PROPERTY2,...

CLASSID is an alphanumeric identifier of the class. There are 4 object classes(p-part,j-joint,n-neuron,c-connection).
- Compiles model and updates model
- Checks model validity (model is not updated)
- Indicates change of the model made in any of editors window






Model properties editor

Lets you directly input parameters of model's objects. You can easy view actual parameters of every model's object, and change its value as you wish.




Body Editor

This tool let you manipulate with the model's body in graphical mode. Among available functions there are:
- zoom in
- zoom out
- adjusts view to default
- start/stop rotation
- removes part or joint(mark part or joint and press putton)
- adds joint between two existing parts (mark first part, press button and then mark second part new joint will appear between merked parts)
- puts part (press button, choose plane(XY,ZY, or XZ) and then point at place you want part to appear)
- moves parts into indicated point (mark part or parts you want move, press button and choose plane(XY,ZY, or XZ) , drag marked parts), translates joints attached to those parts too.






Brain Editor

This tool let you manipulate with the model's brain in graphical mode. There are three ways the brain can be displayed:
  • Animated (better looking, with animations, not all functions available)
  • Symbols (symbols only, all functions available, required for editing brain structure)
  • Names (neurons' names only, all functions available, required for editing brain structure)

  • - zoom in
    - zoom out
    - adjusts view to default
    - start/stop animation(in Animated mode)
    - adds neuron (press button, choose type of neuron and then point at place you want part to appear)
    - deletes selected neuron
    - adds connection between two existing neurons (mark first neuron, press button and then mark second neuron-new joint will appear between merked neurons)
    - changes neurons alignment






    Properties of object

    By left mouse click on the choosen object you can display properties of this object.





    Overlook

    These are all menus available with all functions description.
  • menu File
  • menu Edit
  • menu Window
  • menu View




  • Opening geontype from internet database

    You can easily connect with FEC-Framstics Experimentation Center (www.alife.pl/fec/www/index.php) through Open Internet Database option. This database contains various Framstick models. Browse DB and find interesting model to developing. When You think you created interesting Framstick you can submit it on FEC.